import java.util.Arrays;
import java.util.Scanner;
public class test {
    //码蹄集补给问题
    private static int compareresult(int[] num,int b){
        int result=0;//计算优惠或者不优惠的结果
        int count=0;
        for(int x:num){
            if(result>b){
                break;
            }
            result+=x;
            count++;
        }
        return count;
    }
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int n=sc.nextInt();
        int b=sc.nextInt();
        int[] arr1=new int[n];
        int[] arr2=new int[n];
        for(int i=0;i<n;i++){
            arr1[i]=sc.nextInt();
            arr2[i]=sc.nextInt();
        }
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=arr1[i]+arr2[i];
        }
        int maxresult=0;
        //排序
        Arrays.sort(nums);
        //比较出不优惠的最大结果
        maxresult=compareresult(nums,b);
        //比较出优惠的结果
        for(int i=0;i<n;i++){//优惠对象
            //存储结果
            int[] nums1=new int[n];
            for(int j=0;j<n;j++) {//遍历堡垒
                //优惠
                if (j == i)
                    nums1[j]=nums[j]/2+nums[j];
                    //非优惠对象
                else{
                    nums1[j]=nums[j]+nums[j];
                }
            }
            Arrays.sort(nums1);
            int currentresult=compareresult(nums1,b);
            if(currentresult>maxresult){
                maxresult=currentresult;
            }
        }
        System.out.println(maxresult);
        sc.close();
    }
}
